package com.xzmzhp.service.activity;

import com.xzmzhp.pojo.activity.Activity;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @author: 王源(xm)
 * @create: 2022-03-27 19:59
 * @program: ams
 * @description: 活动管理逻辑接口
 */
@Repository
public interface ActivityService {

    /**
     * 查询活动全部数据
     * @return 活动信息
     */
    List<Activity> findAll();

    /**
     * 根据相应的参数查询数据
     * @param param 参数
     *        societyId 社团id
     *        activityName 活动名称
     *        startTime 开始时间
     *        endTime  结束时间
     * @return 活动信息
     */
    List<Activity> findByParam(Map<String,Object> param);

    /**
     * 获取最新的活动信息
     * @return 活动信息
     */
    Activity findLatestActivities();

    /**
     * 根据id查询活动信息
     * @param activityId 活动id
     * @return 活动信息
     */
    Activity findActivityById(Integer activityId);

    /**
     * 添加活动信息
     * @param activity 活动信息
     * @return 是否成功
     */
    Integer addActivity(Activity activity);

    /**
     * 修改活动信息
     * @param activity 活动信息
     * @return 是否成功
     */
    Integer exitActivity(Activity activity);

    /**
     * 根据活动id删除节目类型信息
     * @param activityId 活动id
     * @return 是否成功
     */
    Integer delActivity(Integer activityId);

    /**
     * 添加活动人员信息
     * @param activityId 活动id
     * @param personnelId 人员id
     * @return 是否成功
     */
    Integer addActivityPersonnel(Integer activityId,Integer personnelId);

    /**
     * 批量添加活动人员信息
     * @param activityId 活动id
     * @param personnelId 人员id集合
     * @return 是否成功
     */
    Integer addActivityPersonnel(Integer activityId,Integer[] personnelId);

    /**
     * 删除活动人员信息
     * @param activityId 活动id
     * @param personnelId 活动人员id
     * @return 是否成功
     */
    Integer delActivityPersonnel(Integer activityId,Integer personnelId);

    /**
     * 删除活动人员信息
     * @param activityId 活动id
     * @param personnelId 活动人员id集合
     * @return 是否成功
     */
    Integer delActivityPersonnel(Integer activityId,Integer[] personnelId);
}
